package com.crm.service.sys;

import com.crm.model.dto.MainSalesmanDto;
import com.crm.model.entity.sys.SalesmanSupportLog;
import com.crm.model.entity.sys.UserInfo;

import java.util.List;
import java.util.Map;

/**
 * 首页销售明星榜 服务接口类
 * @author yun_cheng
 * @date 2021年12月23日 上午 09:04:29
 */
public interface MainSalesmanDbService {

    /**
     * 新增支持信息
     * @param salesmanSupportLog
     * @return
     */
    Boolean insertSupportLog(SalesmanSupportLog salesmanSupportLog);

    /**
     * @description 判断当前账号是否已支持过榜前销售
     * @param supportAccountId 支持人账号 当前登录人id
     * @param salesmanList 榜单人信息
     * @return java.lang.String
     * @author ChengYun
     * @date 2021年12月23日 上午 09:14:42
     */
    List<Map<String, String>> isSupported(String supportAccountId, List<MainSalesmanDto> salesMainList, String supportDate);

    /**
     * @description 统计榜单人员的点赞、送花、留言数
     * @param salesmanList 榜单人信息
     * @return java.lang.String
     * @author ChengYun
     * @date 2021年12月23日 上午 09:14:42
     */
    List<Map<String, Object>> salesmanGiftStat(List<MainSalesmanDto> salesMainList, String supportDate);

    /**
     * @description 验证是否操作过该类型
     * @param accountId 当前登录人账号
     * @param supportedAccountId 被支持人账号
     * @param type 类型（1：点赞；2：送花）
     * @return boolean
     * @author ChengYun
     * @date 2021年12月23日 上午 09:40:22
     */
    boolean isOptionByType(String accountId, String supportedAccountId, Integer type, String supportDate);

    /**
     * @description 根据销售榜单获取头像信息
     * @param resultList 销售榜单
     * @return void
     * @author ChengYun
     * @date 2021年12月23日 上午 11:34:22
     */
    List<Map<String, String>> getAccessUrlByAccountId(List<MainSalesmanDto> salesmanList);

    /**
     * @description 查询销售明星榜留言信息
     * @param salesmanList 销售榜单
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     * @author ChengYun
     * @date 2021年12月23日 下午 14:29:42
     */
    List<Map<String, Object>> getTopSalesmanMessage();
}
